約 722,239 件
https://w.atwiki.jp/zhero/pages/653.html
; -- (名無しさん) 2011-09-03 19 06 37
https://w.atwiki.jp/zhero/pages/372.html
↑ミス。称号は全体系を除くと+パネル数が一番高いものになる模様。SATとSDFが同じ値だとSATの称号が優先された。 -- (名無しさん) 2010-03-27 23 08 54
https://w.atwiki.jp/zhero/pages/192.html
SATパネル+1010近くで称号「最凶ヒーロー」確認 -- (名無しさん) 2010-03-18 06 01 56
https://w.atwiki.jp/zhero/pages/238.html
↑?なに投票してんの????????????????????? -- (名無しさん) 2010-03-20 18 59 53
https://w.atwiki.jp/zhero/pages/160.html
称号「マケレンノジャー」確認 -- (名無しさん) 2010-03-16 22 48 02
https://w.atwiki.jp/3594chugen/pages/45.html
■敵計略ルーチン B644h ※計略候補ビットパターン 籠共連虚要乱陥火 $B634 A2 00ldx #$00;機動力3以下の計略候補 $B636 AD 6F 06lda $066F; $B639 C9 04cmp #$04; $B63B 90 1Abcc $B657; $B63D A2 30ldx #$B0;機動力4の場合の計略候補 $B63F C9 05cmp #$05; $B641 90 14bcc $B657; $B643 A2 33ldx #$33;機動力5の場合の計略候補 $B645 C9 06cmp #$06; $B647 90 0Ebcc $B657; $B649 A2 37ldx #$B7;機動力6の場合の計略候補 $B64B C9 07cmp #$07; $B64D 90 08bcc $B657; $B64F 20 D0 D5jsr $D5D0;追加ルーチン $B652 90 03bcc $B657; $B654 EAnop; $B655 A2 FFldx #$FF;機動力12以上の場合の計略候補 $B657 A4 9Cldy $9C; $B659 B9 1A 6Elda $6E1A,y; $B65C 29 0Fand #$0F; $B65E 85 16sta $16; 追加ルーチン($D5D0+10h=D5E0h) $D5D0 A2 3Fldx #$3F;機動力7の場合の計略候補 $D5D2 C9 09cmp #$09; $D5D4 90 04bcc $D5DA; $D5D6 A2 7Fldx #$7F;機動力9の場合の計略候補 $D5D8 C9 0Ccmp #$0C; $D5DA 60rts; ■計略を使える知力判定(COM) B689h($B679) $B679 F0 1Ebeq $B699; $B67B C0 2Dcpy #$2D;要撃(45以上) $B67D 90 0Abcc $B689; $B67F C0 41cpy #$41;乱水(65以上) $B681 90 0Cbcc $B68F; $B683 C0 55cpy #$55;共殺(85以上) $B685 90 0Ebcc $B695; $B687 18clc; $B688 60rts; $B689 29 13and #$13;45未満の場合の計略絞込み $B68B F0 0Cbeq $B699; $B68D D0 F8bne $B687; $B68F 29 1Fand #$1F;65未満の場合の計略絞込み $B691 F0 06beq $B699; $B693 D0 F2bne $B687; $B695 29 3Dand #$FD;85未満の場合の計略絞込み $B697 D0 EEbne $B687;↑COMは籠絡をインチキ使用 $B699 38sec; $B69A 60rts; ■敵計略実行条件 B712h 残兵士数 02(200人)未満で共殺・要撃・乱水・火計なし B720h 残体力 1E(30)未満で陥穽なし B72Eh 忠誠 4B(75)以上で籠絡なし ■計略を使える知力判定(プレーヤー) 14BB7h 要撃(40以上) 14BBFh 乱水(60以上) 14BC7h 共殺(80以上) ■計略の消費機動力 14BE6h($CBD6)~火計 陥穽 乱水 要撃 虚兵 連環 共殺 籠絡の順 ■計略実行可能地形 14BF6h~火計 陥穽 乱水 要撃 虚兵 連環 共殺 籠絡の順の8バイト×8計略 ■敵の籠絡の計優遇(機動力消費を1にする) 14CBAh($CCAA+8010h=14CBAh) 14D8Ch($CD7C) $CD7C 20 20 95jsr $95C0;追加ルーチン11530h $CD7F 38sec; $CD80 F9 D6 CBsbc $CBD6,y;Aから計略機動力分減算 $CD83 8D 6F 06sta $066F; 11530h($9520) 追加ルーチン $9520 C0 07cpy #$07;籠絡の計かどうか $9522 30 14bmi $9538;違うなら$9538(通常処理へ戻る) $9524 AE 76 06ldx $0676;Xに現在実行武将ID $9527 86 F2stx $F2;Xを$F2に退避(忠誠変化時に必要) $9529 EC A3 06cpx $06A3;COMが実行武将か判断 $952C F0 0Abeq $9538;一致したら$9538 $952E BE D6 CBldx $CBD6,y;Xに籠絡消費機動力抽出 $9531 CAdex;Xをデクリメント $9532 8Atxa;X→A $9533 18clc; $9534 6D 6F 06adc $066F;A+現在機動力($066F) $9537 60rts; $9538 AD 6F 06lda $066F;Aに現在機動力抽出 $953B 60rts; ■忠誠値変化ルーチン(籠絡の計後の変化) $0620 敵(対象)ID $06A3 味方ID $00F2 実行武将ID 1525Bh($D24A+8010h=1525Bh)~ $D24A AD F2 00lda $00F2;味方の武将ID $D24D 20 84 AFjsr $AF84;忠誠値変化ルーチン12F94h 12F94h($AF84+8010h=12F94h)~忠誠値変化ルーチン 戦闘終了後君主を倒した場合$8000にはバンク3Chが入っているため バンク38h(人徳データとサブルーチン)に入れ替えないといけない 君主を倒した際にまだその君主の配下武将が居た場合(他都市も含む)はプレーヤー君主の相性で 忠誠が変化するようにしている $AF84 A5 7Elda $7E;$8000のバンクNoを取得 $AF86 85 F3sta $F3;$F3に退避 $AF88 C9 38cmp #$38;バンクNoが38h(人徳データがあるバンク)か $AF8A F0 0Dbeq $AF99;一致したら$AF99にブランチ $AF8C A9 38lda #$38;バンクNo38hを$8000に入れ替える準備 $AF8E 20 13 E6jsr $E613;$8000バンク切り替えルーチン $AF91 AD 20 06lda $0620;君主ID抽出(プレーヤー) $AF94 85 F2sta $F2;$F2に退避 $AF96 8E 20 06stx $0620;X(捕らえた武将ID)→$0620 $AF99 A5 F2lda $F2;$F2→A $AF9B 20 00 9Ajsr $9A00;忠誠値変化ルーチン続きへ $AF9E A5 F3lda $F3;$F3(バンクNo)→A $AFA0 C9 3Ccmp #$3C;$3Cか $AFA2 D0 08bne $AFAC;一致しなかったら$AFACへブランチ $AFA4 20 13 E6jsr $E613;$8000バンク切り替えルーチン $AFA7 A5 F2lda $F2;$F2(君主ID)→A $AFA9 8D 20 06sta $0620;A→$0620※他の都市の武将を捕らえた時に必要 $AFAC 60rts ; 11A10h($9A00+8010h=11A10h)~続き $9A00 A0 00ldy #$00;相性のオフセット $9A02 20 45 EEjsr $EE45;武将データ抽出(相性値) $9A05 29 07and #$07;下位3ビット抽出 $9A07 85 F0sta $F0;$F0へ退避 $9A09 AD 20 06lda $0620;敵ID抽出 $9A0C 20 45 EEjsr $EE45;武将データ抽出(相性値) $9A0F 29 07and #$07;下位3ビット抽出 $9A11 38sec ;キャリーフラグセット $9A12 E5 F0sbc $F0;相性値の差を計算 $9A14 B0 02bcs $9A18;結果がプラスならブランチ($9A18) $9A16 29 07and #$07;下位3ビット抽出 $9A18 C9 05cmp #$05;差が5未満か $9A1A 90 05bcc $9A21;5未満ならブランチ($9A21) $9A1C 49 07eor #$07;反転 $9A1E AAtax ;A→X $9A1F E8inx ;Xをインクリメント $9A20 8Atxa ;X→A $9A21 85 F0sta $F0;$F0へ退避 $9A23 AE F2 00ldx $00F2;計略実行武将IDをXに $9A26 BD A0 97lda $97A0,x;計略使用武将の魅力をAに $9A29 4Alsr a;魅力を1/2 $9A2A 85 F1sta $F1;$F1に退避 $9A2C 4Alsr a;更に半分1/4 $9A2D 65 F1adc $F1;1/2+1/4=3/4 $9A2F 85 F1sta $F1;$F1へ退避 $9A31 20 E6 E9jsr $E9E6;ランダム値→Aに $9A34 25 F1and $F1;$F1とAND $9A36 A6 F0ldx $F0;$F0→Xに $9A38 E0 00cpx #$00;Xと0を比較 $9A3A D0 05bne $9A41;0でなければ$9A41へブランチ $9A3C 18clc ; $9A3D 69 23adc #$23;Aに+#$23(+35) $9A3F D0 17bne $9A58;$9A58へブランチ $9A41 E0 01cpx #$01;Xと1を比較 $9A43 D0 05bne $9A4A;1でなければ$9A4Aへブランチ $9A45 18clc ; $9A46 69 0Fadc #$0F;Aに+#$0F(+15) $9A48 D0 0Ebne $9A58;$9A58へブランチ $9A4A E0 03cpx #$03;Xと3を比較 $9A4C D0 04bne $9A52;3でなければ$9A52へブランチ $9A4E 4Alsr a;右シフト(1/2) $9A4F 18clc ; $9A50 90 06bcc $9A58;$9A2Fへブランチ $9A52 E0 04cpx #$04;Xと4を比較 $9A54 D0 02bne $9A58;4でなければ$9A58へブランチ $9A56 4Alsr a;右シフト(1/2) $9A57 4Alsr a;右シフト(1/2) $9A58 C9 60cmp #$60;Aと#$60(96)を比較 $9A5A 90 02bcc $9A5E;#$60(96)を超えてなければ$9A5Eへブランチ $9A5C A9 5Flda #$5F;#$5F(95)に設定 $9A5E A0 05ldy #$05;Yに5(忠誠オフセット) $9A60 91 00sta ($00),y;忠誠値上書き $9A62 60rts ; ■忠誠値変化(戦闘で降伏した場合) $0688 左側武将ID $0689 右側武将ID $068A どっちが降伏したかのフラグ00 左側降伏80 右側降伏 12F72h($AF62+8010h=12F72h) $AF62 AD 88 06lda $0688; $AF65 AC 89 06ldy $0689; $AF68 AE 8A 06ldx $068A; $AF6B 20 40 95jsr $9540;11550h $AF6E EAnop ; $AF6F EAnop ; 11550h($9540+8010h=11550h) $9540 30 04bmi $9546;右側が降伏ならブランチ $9542 A8tay ;AとYを $9543 AD 89 06lda $0689;入れ替え $9546 85 F2sta $F2; $9548 8C 20 06sty $0620; $954B 20 84 AFjsr $AF84;12F94h忠誠値変化ルーチンへ $954E 60rts ; ■COM戦争時の負け側戦死武将候補 C499h,C4A8h 攻め(守り)側の武将IDのあるワークエリア$6DC2~$6E02を読み取る際 ループの終了条件が違うため関係のないエリアを読み取りそのデータを 武将IDと認識し後の計算結果次第により戦死扱いを受ける そのため戦争とは関係のない未登場の在野武将が登場しない既存バグがある $C489 A9 3Clda #$3C;3C→39へ 戦死の計算で統率を使っているかも $C498 A9 3Clda #$3C;3C→39へ 戦死の計算で武力+20を使っている ■COM捕らわれ確率(COM対COMの戦争) C534h~ $C524 A0 06ldy #$05;忠誠のオフセット $C526 20 17 D0jsr $D017;忠誠抽出 $C529 85 21sta #21; $C52B 20 50 D6jsr #D650;ランダムで110以下の数値抽出※ランダムで100以下のルーチンと同じ $C52E C5 21cmp $21;忠誠より高い値なら $C530 B0 03bcs #C535;捕らわれる ■忠誠値変化ルーチン(COM対COMの戦争) $18$19 捕らわれた武将データの先頭アドレス $95 捕らわれた武将 $16$17 捕らわれ先の都市の先頭アドレス C6E1h~ $CED1 A0 00ldy #$00;相性のオフセット $CED3 20 17 D0jsr $D017;武将データ抽出ルーチン(システム側) $CED6 29 07and #$07;下位3ビット抽出(相性値) $CED8 85 F0sta $F0;$F0へ退避 $CEDA A5 A0lda $A0;どちらが勝ったか00守り勝ち 01攻め勝ち $CEDC F0 0Bbeq $CEE9;守り勝ちならブランチ $CEDE A5 9Elda $9E;攻め側の都市ID $CEE0 20 49 F8jsr $F849;都市の先頭アドレス抽出ルーチン($00,$01) $CEE3 A0 00ldy #$00; $CEE5 B1 00lda ($00),y;都市の先頭データ抽出(支配者君主) $CEE7 90 02bcc $CEEB; $CEE9 B1 16lda ($16),y;守り側の都市ID抽出 $CEEB 29 0Fand #$0F;下位4ビット(君主ID)抽出 $CEED 85 F1sta $F1;$F1に退避 $CEEF C9 08cmp #$08;08(張魯)かどうか $CEF1 D0 02bne $CEF5; $CEF3 A9 01lda #$01;01にする $CEF5 20 F0 D5jsr $D5F0;相性値計算ルーチン $CEF8 91 18sta ($18),y; $CEFA 60rts ; 相性値計算ルーチン(君主の人徳の75%以下のランダム値+相性差補正値) 相性差00 +35,01 +25,02 +15,03 +5,04 +0) D600h~ $D5F0 38sec ; $D5F1 E5 F0sbc $F0;最小値の差を計算 $D5F3 B0 02bcs $D5F7;結果がプラスならブランチ $D5F5 29 07and #$07;下位3ビット抽出 $D5F7 C9 05cmp #$05;差が5未満か? $D5F9 90 05bcc $D600;5未満ならブランチ $D5FB 49 07eor #$07;レジスタAの値を反転 $D5FD AAtax ;A→X $D5FE E8inx ;Xをインクリメント(+1) $D5FF 8Atxa ;X→A $D600 85 F0sta $F0;$F0へ退避(相性差) $D602 A9 38lda #$38;バンクNo38h(人徳データがあるバンク)をセット $D604 20 19 E6jsr $E619;$8000バンク切り替えルーチン $D607 A6 F1ldx $F1;$F1→X $D609 BD A0 B7lda $B7A0,x;君主の人徳抽出 $D60C 4Alsr a;人徳を1/2 $D60D 85 F1sta $F1;$F1に退避 $D60F 4Alsr a;更に半分 $D610 65 F1adc $F1;1/2+1/4=3/4 $D612 85 F1sta $F1;A→$F1へ $D614 A9 35lda #$35;バンクNo35hをセット $D616 20 19 E6jsr $E619;$8000バンク切り替えルーチン $D619 20 E6 E9jsr $E9E6;ランダム値抽出 $D61C 25 F1and $F1;$F1とAND $D61E A6 F0ldx $F0;$F0→X $D620 D0 05bne $D627;相性差0 $D622 18clc ; $D623 69 23adc #$23;+35 $D625 D0 19bne $D640; $D627 E0 01cpx #$01;相性差1 $D629 D0 05bne $D630; $D62B 18clc ; $D62C 69 19adc #$19;+25 $D62E D0 10bne $D640; $D630 E0 02cpx #$02;相性差2 $D632 D0 05bne $D639; $D634 18clc ; $D635 69 0Fadc #$0F;+15 $D637 90 07bcc $D640; $D639 E0 03cpx #$03;相性差3 $D63B D0 03bne $D640; $D63D 18clc ; $D63E 69 05adc #$05;+5 $D640 C9 60cmp #$60;96を超えたか $D642 90 02bcc $D646; $D644 A9 5Flda #$5F;95に再設定 $D646 A0 05ldy #$05;忠誠のオフセット $D648 60rts ; ■戦争開始時期判定 BF8Fh~ $BF7F AD 88 6Dlda $6D88;レベル抽出 $BF82 F0 18beq BF9C;0(レベル1)ならブランチ $BF84 C9 02cmp $02;2(レベル3)か $BF86 F0 21beq BFA9;2ならブランチ $BF88 AD 85 6Dlda 6D85;現在の年抽出 $BF8B C9 C9cmp $C9;1年経過しているか $BF8D B0 1Abcs BFA9;していればブランチ $BF8F AD 87 6Dlda 6D87;現在の月抽出 $BF92 C9 07cmp $07;6ヶ月経過しているか $BF94 B0 13bcs BFA9;していればブランチ $BF96 EE 89 06inc 0689; $BF99 4C 53 BFjmp BF53; $BF9C AD 85 6Dlda 6D85;レベル1のブランチ先 $BF9F C9 C9cmp $C9; $BFA1 B0 06bcs BFA9; $BFA3 EE 89 06inc 0689; $BFA6 4C 53 BFjmp BF53; $BFA9 A0 FFldy $FF; レベル1なら1年間は戦争しない レベル2なら6ヶ月間は戦争しない レベル3なら開始直後から戦争がありえる ■COMの国造り補正値 CA61h~ $CA51 20 DA E9jsr $E9DA;ランダム値0~7抽出ルーチン $CA54 18clc ; $CA55 69 10adc #$10;ランダム値+#$10(16) $CA57 A0 04ldy #$04;都市の土地のオフセット $CA59 20 79 CEjsr $CE79;加算ルーチン($1B利用) $CA5C A9 05lda #$05; $CA5E 20 11 CFjsr $CF11; $CA61 4C EF C9jmp $C9EF; $CA64 AE 8B 6Dldx $6D8B; $CA67 BD 20 6Flda $6F20,x; $CA6A 29 1Fand #$1F; $CA6C C9 1Ecmp #$1E; $CA6E 90 08bcc $CA78; $CA70 BD 20 6Flda $6F20,x; $CA73 29 E0and #$E0; $CA75 9D 20 6Fsta $6F20,x; $CA78 BD 20 6Flda $6F20,x; $CA7B FE 20 6Finc $6F20,x; $CA7E 29 1Fand #$1F; $CA80 20 68 CEjsr $CE68; $CA83 29 0Fand #$0F; $CA85 CD 8B 6Dcmp $6D8B; $CA88 D0 DAbne $CA64; $CA8A 20 D8 CEjsr $CED8; $CA8D 20 DA E9jsr $E9DA;ランダム値0~7抽出ルーチン $CA90 18clc ; $CA91 69 10adc #$10;ランダム値+#$10(16) $CA93 A0 06ldy #$06;都市の産業のオフセット $CA95 20 79 CEjsr $CE79;加算ルーチン($1B利用) $CA98 A9 05lda #$05; $CA9A 20 11 CFjsr $CF11; $CA9D 4C EF C9jmp $C9EF; $CAA0 AE 8B 6Dldx $6D8B; $CAA3 BD 26 6Flda $6F26,x; $CAA6 29 1Fand #$1F; $CAA8 C9 1Ecmp #$1E; $CAAA 90 08bcc $CAB4; $CAAC BD 26 6Flda $6F26,x; $CAAF 29 E0and #$E0; $CAB1 9D 26 6Fsta $6F26,x; $CAB4 BD 26 6Flda $6F26,x; $CAB7 29 1Fand #$1F; $CAB9 20 68 CEjsr $CE68; $CABC 29 0Fand #$0F; $CABE CD 8B 6Dcmp $6D8B; $CAC1 F0 06beq $CAC9; $CAC3 FE 26 6Finc $6F26,x; $CAC6 4C A0 CAjmp $CAA0; $CAC9 20 D8 CEjsr $CED8; $CACC 20 D4 E9jsr $E9D4;ランダム値0~3抽出ルーチン $CACF 18clc ; $CAD0 69 0Aadc #$0A;ランダム値+#$0A(10) $CAD2 85 16sta $16; $CAD4 A9 64lda #$64;100倍にするための準備 $CAD6 85 17sta $17; $CAD8 20 AF B5jsr $B5AF;100倍化ルーチン ■COM国造り実行可否バグ CCD7h~ $CCC7 20 E0 E9jsr $E9E0;ランダム値0~F抽出 ※ここが駄目かも $CCCA AC 88 6Dldy $6D88;ゲームレベル抽出(レベル1=00、レベル2=01、レベル3=02) $CCCD D9 AD CCcmp $CCAD,y;テーブル内と比較(15 2A 55) $CCD0 B0 E2bcs $CCB4;ランダム値0~F-15 or 2A or 55 なので必ずキャリーフラグはクリアの状態 $CCD2 A9 3Clda #$3C; ↓ $CCC7 20 C7 E9jsr $E9C7;ランダム値64未満抽出 レベル1=21% レベル2=42% レベル3=85%の確率で内政をするプログラムだったのではないか? ただしCOMが内政しなさ過ぎるのもアレなのでこのままでいいかも ■都市ID12倍化ルーチン(在野位置で必要COM用) CCE7h~($CCD7) $CCD7 A9 00lda #$00; $CCD9 85 16sta $16; $CCDB 85 F0sta #F0; $CCDD A5 94lda $94; $CCDF 0Aasl; $CCE0 0Aasl; $CCE1 0Aasl; $CCE2 85 F0sta $F0; $CCE4 20 C0 D5jsr $D5C0; ↓ D5D0h($D5C0) $D5C0 A5 94lda $94; $D5C2 0Aasl; $D5C3 0Aasl; $D5C4 65 F0adc $F0; $D5C6 26 16rol $16; $D5C8 60rts; ■都市ID12倍化ルーチン(在野位置で必要自分用) 19B80h~($9B70) $9B70 85 F0sta $F0; $9B72 AD 17 06lda $0617; $9B75 0Aasl; $9B76 0Aasl; $9B77 65 F0adc $F0; $9B79 26 00rol $00; $9B7B 60rts; 呼び出し元のルーチン 1B057h($B047) $B047 A9 00lda #$00; $B049 85 00sta $00; $B04B 85 F0sta $F0; $B04D 85 F1sta $F1; $B04F AD 17 06lda $0617; $B052 0Aasl; $B053 0Aasl; $B054 0Aasl; $B055 20 50 9Cjsr $9B70;※19B80h城番号12倍にする処理 $B058 69 30adc #$30;※$FE30のアドレス $B05A 85 05sta $05; $B05C A5 00lda $00; $B05E 69 FEadc #$FE;※$FE30のアドレス $B060 85 06sta $06; $B062 AD 85 6Dlda $6D85;※現在年 $B065 38sec; $B066 E9 C6sbc #$C6;※開始年から何年たつか $B068 8D 25 06sta $0625;※結果を格納 $B06B EE 25 06inc $0625; $B06E 20 E6 E9jsr $E9E6; $B071 29 07and #$0F;※テーブルの最後か $B073 CD 25 06cmp $0625; $B076 B0 F6bcs $B06E;※キャリーフラグがセットされている時にブランチ $B078 A8tay ■COM在野武将捜索バグ CD11h~ $CD01 A9 FFlda #$FF; $CD03 85 21sta $21; $CD05 E6 21inc $21;在野武将テーブルオフセット値 $CD07 A4 21ldy $21; $CD09 C4 20cpy 20;スタート後何年経過したか(ループの終了値) $CD0B 90 03bcc $CD10; $CD0D 4C B4 CCjmp $CCB4;次の都市の処理へ $CD10 B1 1Blda ($1B),y;在野武将テーブルから武将ID取得 $CD12 85 9Fsta $9F; $CD14 C9 FFcmp #$FF;在野いないか? $CD16 D0 03bne $CD1B; $CD18 4C B4 CCjmp $CCB4;次の都市の処理へ ※ここが駄目 $CD1B A0 00ldy #$00; ↓ $CD18 4C 05 CDjmp $CD05;在野がいない(FF)の場合はオフセット値をインクリメントする処理へ戻る ■武将データ表示順 F48Eh 03 統率(元は武力) F498h 02 知力 F4A2h 01 武力(元は体力) ■武将データ--表示 F634h $B624 C9 FFcmp #$FF;FFなら $B626 F0 26beq $B64E;--表示 ↓ $B624 C9 64cmp #$64;64以上なら $B626 B0 26bcs $B64E;--表示 ※君主の忠誠度をFF(255)以外に設定→64(100) 育成時に君主の忠誠を255で計算しないで済む ■何か忘れた 110ABh~ 127FBh~ A0 03 lda #$03;旧武力読み込み ↓ A0 01 lda #$01;新武力読み込み ■戦闘時武将ユニットのHPを武力にする(追加ルーチン) 11D0Fh(実アドレス-8010h)ジャンプ元 $9CFF A5 06 lda $06;体力が格納されている $9D01 8D B1 04 sta $04B1;セット $9D04 A5 07 lda $07;体力が格納されている $9D06 8D D2 04 sta $04D2;セット $9D09 A2 00 ldx #$00; ↓ $9CFF 20 F0 98 jsr $98E0;武力抽出ルーチンジャンプ $9D02 8D B1 04 sta $04B1;セット $9D05 20 FB 98 jsr $98EB;武力抽出ルーチンジャンプ $9D08 8D D2 04 sta $04D2;セット 武力抽出ルーチン 118F0h-11907h(実アドレス-8010h) $98E0 AD 88 06 lda $0688;レジスタAに武将IDをセット $98E3 A0 01 ldy #$01;レジスタYに01(武力)をセット $98E5 20 45 EE jsr $EE45;抽出ルーチンへジャンプ $98E8 85 F2 sta $F2;$F2に抽出した武力を格納(戦闘開始時の武力の一時保存(一騎打ち前に参照)) $98EA 60 rts; $98EB AD 89 06 lda $0689; $98EE A0 01 ldy #$01; $98F0 20 45 EE jsr $EE45; $98F3 85 F3 sta $F3;$F3に抽出した武力を格納(戦闘開始時の武力の一時保存(一騎打ち前に参照)) $98F5 A2 00 ldx $00; $98F7 60 rts; ■一騎打ち時の体力 10DFEh ジャンプ元 $8DEE 20 EE 93 jsr $93EE ↓ $8DEE 20 BA 98 jsr $98BA 118CAh ジャンプ先(実アドレス-8010h) $98BA AD 88 06lda $0688; $98BD A0 01ldy #$01; $98BF 20 45 EEjsr $EE45; $98C2 CD B1 04cmp $04B1; $98C5 F0 04beq $98DB; $98C7 A5 F2lda $F2; $98C9 91 00sta ($00),y; $98CB AD 89 06lda $0689; $98CE A0 01ldy #$01; $98D0 20 45 EEjsr $EE45; $98D3 CD D2 04cmp $04D2; $98D6 F0 04beq $98EC; $98D8 A5 F3lda $F3; $98DA 91 00sta ($00),y; $98DC 20 EE 93jsr $93EE; $98DF 60rts; ■部隊の色抽出ルーチン新バージョン(君主9人) 11B96h 部隊の色抽出ルーチン旧バージョン(君主6~7人) $9B86 AE 73 06 ldx $0673; $9B89 10 07 bpl $9B92; $9B8B 85 0A sta $0A; $9B8D 85 0B sta $0B; $9B8F 4C A0 9B jmp $9BA0; $9B92 4A lsr; $9B93 4A lsr; $9B94 4A lsr; $9B95 4A lsr; $9B96 85 0A sta $0A; $9B98 B1 00 lda ($00),y; $9B9A 0A asl; $9B9B 0A asl; $9B9C 0A asl; $9B9D 0A asl; $9B9E 85 0B sta $0B; $9BA0 A5 0A lda $0A; $9BA2 29 07 and #$07; $9BA4 0A asl; $9BA5 85 00 sta $00; $9BA7 A5 0B lda $0B; $9BA9 29 F0 and #$F0; $9BAB 05 00 ora $00; $9BAD A8 tay; $9B8E 60 rts; ↓ 部隊の色抽出ルーチン新バージョン(君主9人) $9B86 48 pha;Aに上位桁君主番号下位桁に君主番号 $9B87 29 0F and #$0F;下位桁の君主番号抽出 $9B89 85 0A sta $0A;$0Aに退避 $9B8B 68 pla;スタックから取り出す $9B8C 4A lsr;4ビット右シフトして $9B8D 4A lsr;上位桁を取り出す $9B8E 4A lsr; $9B8F 4A lsr; $9B90 85 0B sta $0B;$0Bに退避 $9B92 A4 0A ldy $0A;下位桁君主番号をYに $9B94 A5 0B lda $0B;上位桁君主番号をAに $9B96 AE 73 06 ldx $0673;プレーヤーかCOMか判断のフラグ抽出? $9B99 10 04 bpl $;ネガティブフラグがクリアされている時にブランチします $9B9B A4 0B ldy $0B; $9B9D A5 0A lda $0A; $9B9F 0A asl;Aを左シフト $9BA0 18 clc; $9BA1 79 A6 9B adc $9BA6,y; $9BA4 A8 tay; $9BA5 60 rts; $9BA6 インデックステーブル 00 12 24 36 48 5A 6C 7E 90 ■戦闘時の部隊攻撃力(武>統→武、統≧武→(統+武)/2) 120E1h ジャンプ元 $A0D1 20 45 EE jsr $EE45 ↓ $A0D1 20 A0 98 jsr $98A0 118B0h ジャンプ先(実アドレス-8010h) $98A0 85 F0sta $F0;武将IDを$F0に退避 $98A2 20 45 EEjsr $EE45;Y=3 統率抽出 $98A5 85 F1sta $F1;統率を$F1に退避 $98A7 A5 F0lda $F0;武将ID抽出 $98A9 A0 01ldy #$01;Y=1 武力抽出 $98AB 20 45 EEjsr $EE45;A=武力 $98AE C5 F1cmp $F1;A=武力と$F1=統率を比較 $98B0 B0 07bcs $98C9;武力≧統率ならキャリーフラグセット(ブランチする) $98B2 65 F1adc $F1;A=武力+統率 $98B4 4Alsr a;Aを右シフト(÷2) $98B5 A0 01ldy #$01; $98B7 91 00sta ($00),y;武力(部隊攻撃力)書き換え $98B9 60rts; ■戦争時部隊色テーブル読み込みルーチン 13621h(実アドレス-8010h) $B611 A0 39ldy #$39 $B613 B1 00lda ($00),y;$6DAA+39=6DE3 戦争中の君主ID(上位桁と下位桁) $B615 48pha;スタックにプッシュ $B616 29 0Fand #$0F;下位桁抽出 $B618 0Aasl a;左シフト(テーブルは2バイトなので下位桁2倍にする) $B619 85 00sta $00;$00に退避 $B61B 68pla;スタックから(プル)ポップ $B61C 29 F0and #$F0;上位桁抽出 $B61E 05 00ora $00;$00とor(テーブルの縦横の座標となる) $B620 A8tay; ↓ $B611 A0 39ldy #$39; $B613 B1 00lda ($00),y;$6DAA+39=6DE3 戦争中の君主ID(上位桁と下位桁) $B615 48pha;スタックにプッシュ $B616 29 0Fand #$0F;下位桁抽出 $B618 0Aasl a;左シフト(テーブルは2バイトなので下位桁2倍にする) $B619 85 00sta $00;$00に退避 $B61B 68pla;スタックから(プル)ポップ 変更箇所↓ $B61C 20 40 DFjsr $DF40;テーブル座標決定ルーチン $B620 EAnop; テーブル座標決定ルーチン 15F50h(実アドレス-8010h) $DF40 29 F0and #$F0;上位桁抽出 $DF42 4Alsr;右シフト4回で $DF43 4Alsr;下位桁に移動 $DF44 4Alsr; $DF45 4Alsr; $DF46 A8tay; $DF47 A5 00lda $00;$00読み込み $DF49 18 clc; $DF4A 79 4E DFadc ($DF4E),y;$DF4Eのテーブル読み込み $DF4D 60 rts; ;テーブル2バイト×9君主=18バイト(12ずつ増加) $DF4E~ 00 12 24 36 48 5A 6C 7E 90 ■機動力バグ修正(戦闘終了後に-3するように順番を入れ替える) 1569Ch(実アドレス-8010h) 戦闘開始直前(攻撃の対象を選択した直後) $D68C AD 6F 06lda $066F;機動力読み込み $D68F 38sec;キャリーフラグセット $D690 E9 03sbc #$03;3減算 $D692 8D 6F 06sta $066F;機動力上書き $D695 20 5E C3jsr $C35E;戦闘準備等のルーチン $D698 F0 01beq $D69B; $D69A 60rts;戦闘開始~ $D69B AD 89 06lda $0689; ↓ $D68C 20 5E C3jsr $C35E;戦闘準備等のルーチン $D68F F0 0Abeq $D69B; $D691 60rts;戦闘開始~ ;機動力3減算ルーチン $D692 AD 6F 06lda $066F;機動力読み込み $D695 F0 03beq $D69B;機動力が0(戦争開始直後)なら処理を飛ばす $D697 38sec;キャリーフラグセット $D698 E9 03sbc #$03;3減算 $D69A 60rts; $D69B AD 89 06lda $0689; 135FCh(実アドレス-8010h) 戦闘開始直後、戦闘終了後 $B5EC AD 6F 06lda $066F;機動力読み込み $B5EF 48pha; ↓ $B5EC 20 92 D6jsr $D692;機動力3減算ルーチンへ $B5EF 48pha; ■説得に応じない武将(武将ID) 1B177h 1B17Bh 1B17Fh 1B183h 1B187h 1B18Bh 1B18Fh 1B193h 1B197h 1B19Bh ■説得に応じない武将テーブルに変更し人数拡張 1B16Ch~ $B15C AD 27 06lda $0627;発見武将ID $B15F C9 FFcmp #$FF;FFか? $B161 D0 1Fbne $B182;FFでなければごねる武将検査 $B163 4C E4 AEjmp $AEE4; $B166;説得に応じない武将テーブル(最大28人まで可) 1A EE 70 6E D1 54 E3 6B 3B 64 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF; $B182 A0 00ldy #$00;Y=00 $B184 D9 66 B1cmp $B166,y;ごね武将テーブルと発見武将比較 $B187 F0 0Abeq $B193;一致したらブランチ $B189 C8iny ;Yインクリメント $B18A C0 12cpy #$12;Yが17以下か(17人に設定中) $B18C D0 F6bne $B184;一致しなかったらブランチ(ループ戻る) $B18E A9 0Alda #$0A;以下通常処理 $B190 4C CE AFjmp $AFCE; $B193 A9 07lda #$07;07=ごねるフラグ $B195 8D 23 06sta $0623; $B198 A9 0Alda #$0A; $B19A 4C CE AFjmp $AFCE; ■国造りを知力から政治へ 1B34Ch~ レジスタAに武将ID $B33C A0 02 ldy #$02;抽出対象知力(2) $B33E 20 26 F8 jsr $F826;抽出ルーチンへジャンプ ↓ $B33C A8 tay;レジスタAに武将IDが格納されているので $B33D A8 tay;レジスタYにセット。2回目は穴埋めで意味なし $B33E 20 15 FE jsr $FE15;政治力抽出ルーチンへジャンプ ジャンプ先 1FE25h~ $FE15 A9 31 lda #$31;2010h~(政治データテーブルアドレスがあるバンク)の読み込み準備 $FE17 20 13 E6 jsr $E613;バンク入れ替えルーチン $FE1A AD 08 80 lda $8008;政治データテーブルアドレス読み込み $FE1D 85 00 sta $00; $FE1F AD 09 80 lda $8009;政治データテーブルアドレス読み込み $FE22 85 01 sta $01; $FE24 B1 00 lda ($00),y;政治データ読み込み $FE26 60 rts; ■国造りの上昇値変更 1B443h~ $B433 A0 01ldy #$01;金のオフセット $B435 B1 0Elda ($0E),y;対象都市の金1バイト目 $B437 38sec ; $B438 ED 20 06sbc $0620;国づくりにかかった費用を減算 $B43B 91 0Esta ($0E),y; $B43D C8iny ;オフセットインクリメント $B43E B1 0Elda ($0E),y;金2バイト目 $B440 E9 00sbc #$00;キャリーフラグの計算 $B442 91 0Esta ($0E),y; $B444 C8iny ;オフセットインクリメント $B445 B1 0Elda ($0E),y;金3バイト目 $B447 E9 00sbc #$00;キャリーフラグの計算 $B449 91 0Esta ($0E),y; $B44B AD 20 06lda $0620;かかった費用を $B44E 4Alsr a;1/2する $B44F 85 00sta $00;$00に格納 $B451 AD 21 06lda $0621;実施者の政治 $B454 4Alsr a;1/8にしたものを $B455 4Alsr a;国づくり上昇値基本値テーブルの $B456 4Alsr a;オフセットとする $B457 A8tay ;yに $B458 A5 30lda $30;ランダムに取得した値に $B45A 29 03and #$03;補正を掛ける0~3 $B45C 18clc ; $B45D 79 D1 B4adc $B4D1,y;国づくり上昇基本値を加算 $B460 18clc ; $B461 65 00adc $00;費用の半値を加算 $B463 85 00sta $00;今回の上昇値退避 $B465 8D 22 06sta $0622;今回の上昇値退避 $B468 AD 1C 06lda $061C;国造りの種類00=土地01=産業02=人口 $B46B D0 08bne $B475;土地でなければブランチ $B46D A0 04ldy #$04;土地のオフセット $B46F 20 BE B4jsr $B4BE;上昇値加算ルーチンへ $B472 4C A8 B4jmp $B4A8;統治度上昇ルーチンへ $B475 C9 01cmp #$01;産業か? $B477 D0 08bne $B481;産業でなければブランチ $B479 A0 06ldy #$06;産業のオフセット $B47B 20 BE B4jsr $B4BE;上昇値加算ルーチンへ $B47E 4C A8 B4jmp $B4A8;統治度上昇処理へ $B481 20 92 D9jsr $D992;人口上昇値決定ルーチン $B484 A9 00lda #$00; $B486 85 01sta $01; $B488 85 02sta $02; $B48A A9 64lda #$64; $B48C 85 03sta $03; $B48E 20 17 EDjsr $ED17; $B491 A5 06lda $06; $B493 85 00sta $00; $B495 A5 07lda $07; $B497 85 01sta $01; $B499 A0 08ldy #$08; $B49B 20 C2 B4jsr $B4C2; $B49E C8iny ; $B49F B1 0Elda ($0E),y; $B4A1 69 00adc #$00; $B4A3 91 0Esta ($0E),y; $B4A5 68pla ; $B4A6 85 00sta $00; $B4A8 46 00lsr $00; $B4AA 46 00lsr $00; $B4AC A0 0Eldy #$0E; $B4AE B1 0Elda ($0E),y; $B4B0 18clc ; $B4B1 65 00adc $00; $B4B3 91 0Esta ($0E),y; $B4B5 C9 64cmp #$64; $B4B7 90 04bcc $B4BD; $B4B9 A9 64lda #$64; $B4BB 91 0Esta ($0E),y; $B4BD 60rts ; 人口上昇値決定ルーチン 1D9A2h~ $D992 68 pla; $D993 85 01 sta $01;スタックポインタ退避 $D995 68pla; $D996 85 02sta $02;スタックポインタ退避 $D998 20 D4 E9jsr $E9D4;ランダム値0~3取得 $D99B 18clc; $D99C 65 00adc $00;人口の上昇値にランダム値加算 $D99E 4Alsr;人口の上昇値を半減 $D99F 85 00sta $00;$00へ上昇値を格納 $D9A1 8D 22 06sta $0622;$0622へ上昇値を格納 $D9A4 48pha;スタックへ上昇値を格納 $D9A5 A5 02lda $02; $D9A7 48pha; $D9A8 A5 01lda $01; $D9AA 48pha; $D9AB 60rts; ■忠誠度アップ限界値 1C231h ■統率(武力)アップ限界値 1C243h ■忠誠度アップの補正値 1C7EEh~ $C85B ↓ $C924 ■情報ウインドウ漢字表示 上段左側→□□←上段右側 下段左側→□□←下段右側 621Ch~1文字目上段左側 B9 3D A2 lda $A23D,y 8D 57 05 sta $0557 6223h~1文字目上段右側 B9 3E A2 lda $A23E,y 8D 58 05 sta $0558 6228h~2文字目上段左側 B9 3F A2 lda $A23F,y 8D 59 05 sta $0559 622Eh~2文字目上段右側 B9 40 A2 lda $A240,y 8D 5A 05 sta $055A 6234h~1文字目下段左側 B9 55 A2 lda $A255,y 8D 67 05 sta $0567 623Ah~1文字目下段右側 B9 56 A2 lda $A256,y 8D 68 05 sta $0568 6240h~2文字目下段左側 B9 57 A2 lda $A257,y 8D 69 05 sta $0569 6246h~2文字目下段右側 B9 58 A2 lda $A258,y 8D 6A 05 sta $056A 60 rts メモリ NESROM内 $A23D-3FF0h=624Dh $A255-3FF0h= $FF70+10010h=1FF80h ■君主選択 画面上から劉備、劉璋、孫権、馬騰、曹操、袁紹 77AAh~ 04 05 03 01 02 00 この値が各君主に割り当てられ#$80とor演算して決定される ■OPの巻物の文字開始位置 3DC60h~ FF XX YY で圧縮あり(FF パターン 繰り返し) ■都市の数カウント? 1DDFBh この都市番号~都市番号00まで降順でカウントしてるっぽい ■学問所利用の制限 利用必要金額 1CDBFh 利用可能限度値(この値未満なら利用可) 1CE26h 上昇基準値(知力低い順から) 1CE56h 1CE5Dh 1CE69h 利用金額テーブル 1CF0Eh~1CF10h ■年月関係 CD08h 開始からの経過年数(在野に関係あり8年以上経つと在野がいないのでCOMの在野任官ルーチンカットのため?かも) CD0Ah 開始から8年経っているか計算する値 CD0Eh 上記値と同じ値を入れておく EBDFh 開始年 EBE9h 開始月 1B077h 開始からの経過年数(プレイヤーの在野に関係あり 開始年が格納されている) 1A0CAh ゲームオーバー年 1DAE6h $DAD2~年-C9 月-06 $0620-1Eをやってる ■
https://w.atwiki.jp/ercr/pages/1624.html
発売日 2010年2月26日 ブランド うらら タグ 2010年2月ゲーム 2010年ゲーム うらら キャスト 黒岩心々(藤彩香),永野らび(若月麻里亜),水野月深(井伊愛) スタッフ プロデュース:でんたく キャラクターデザイン/原画:鈴木美香 シナリオ:チーム大吉 プログラム:俺 may cry スクリプト:餅月ほたる CG:MIKE,ジャングルおかべえ,KAZ,しょぼ郎(´・ω・`),闇焔龍 背景:ZEROmAniA 音響制作:株式会社キューブ ムービー制作:株式会社KIZAWA studio 画面デザイン:ZEROmAniA パッケージ/広告デザイン:HARUMI SUMIYA テストプレイ:夕霧あき,神奈備,凪々 営業:ホビボックス株式会社 販促企画:加藤伸也(HOBIBOX) 広告進行管理:森下恵一郎(HOBIBOX) 販売管理:横田裕司(HOBIBOX) ディレクション:神戸白 OP主題歌 「あなたの恋愛改造白書~Yes,You can!」 作詞/曲:谷上純三(CUBE) 歌:安藤夏
https://w.atwiki.jp/zhero/pages/465.html
+2チップの効率のいい集め方教えて下さい(作る前に埋まらない) -- (名無し) 2010-04-06 16 42 33
https://w.atwiki.jp/zhero/pages/592.html
知らん -- (名無しさん) 2010-07-14 03 04 30
https://w.atwiki.jp/zhero/pages/81.html
トータルレベル2799で全マス解放。もうちょっと低いかもしれないから情報求む -- (名無しさん) 2010-03-14 00 34 36